由于大量学生参加了大规模开放的在线课程(MOOC),因此越来越多的自动化程序维修技术集中在入门编程任务(IPA)上。这种最先进的技术使用程序聚类来利用以前的正确学生实现来修复给定的新不正确提交。通常,这些维修技术使用聚类方法,因为分析了所有可用的正确学生提交以维修程序是不可行的。聚类方法使用基于几个功能的程序表示,例如抽象语法树(AST),语法,控制流和数据流。但是,在表示语义上相似的程序时,这些功能有时会变得脆弱。本文提出了InvaastCluster,这是一种用于程序群集的新方法,它利用了在几个程序执行中观察到的动态生成的程序不变性,以群群群集在语义上等效的IPA。我们的主要目的是通过其不变性及其结构通过其匿名抽象语法树来找到程序的语义结合及其结构的组合。 InvaastCluster的评估表明,在聚集一组不同的正确IPA时,建议的程序表示法优于基于语法的表示。此外,我们将InvaastCluster集成到基于最新的聚类的程序维修工具中,并在一组IPA上进行评估。我们的结果表明,InvaastCluster通过在较短的时间内修复大量学生的程序来使用基于聚类的程序维修工具使用时的当前最新设备。
translated by 谷歌翻译
由于大量学生参加了大规模开放的在线课程(MOOC),因此越来越多的自动化程序维修技术集中在入门编程任务(IPA)上。这样的技术利用了以前的正确学生实施,以向学生提供自动化,全面和个性化的反馈。本文介绍了C-Pack-IPA,这是针对25种不同IPA提交的学生课程的公开基准。C-Pack-IPA包含语义上正确的,语义上不正确且语法上不正确的程序以及每个IPA的测试套件。因此,C-Pack-IPA可用于帮助评估新颖语义的发展以及句法,自动化程序修复框架,重点是向新手程序员提供反馈。
translated by 谷歌翻译